const { url } = require('../../config/index.js') // 接口请求地址

Page({
  // 页面的初始数据
  data: {
    shopName: '',
    orderid: '',
    useList: [],
    imgArr: [] // 图片容器
  },
  // 提交评价1
  commit() {
    // console.log(this.data.useList)
    let list = this.data.useList

    let totalNum = 0 // 图片总数
    for (let i = 0; i < list.length; i++) {
      totalNum += list[i].img.length
    }
    if (totalNum == 0) { // 一张如都没传

      this.commotEvaluate() // 下一步

    } else { // 上传操作
      for (let i = 0; i < list.length; i++) {
        for (let j = 0; j < list[i].img.length; j++) {

          this.imgUpload(list[i].img[j], function (FILE_NAME) {
            // list[i].useImg[j] = FILE_NAME
            if (FILE_NAME) { // 成功上传 放入图片名 
              list[i].useImg.push(FILE_NAME)
            }
            totalNum-- // 无论成功失败总数都减1
            if (totalNum == 0) {
              console.log(this.data.useList)

              // 上传完成的余下操作
              this.commotEvaluate()
            }
          }.bind(this))

        }
      }
    }


  },
  // 评价2
  commotEvaluate () {
    let L = this.data.useList, servcommentList = []
    for (let a = 0; a < L.length; a++){
      let tra = {
        ORDERDETAIL_ID: L[a].servId, // 商品ID
        SCORE: 5, // 分数
        ANONYMOUS: 1, // 匿名
        PHOTO_NAME_LIST: L[a].useImg
      }

      let mosaic = '' // 拼接label标签
      for (let x = 0; x < L[a].labIndex.length; x++){
        mosaic += L[a].lable[L[a].labIndex[x]].SCOMMENT + ' '
      }

      tra.CONTENT = mosaic + L[a].text // 评价内容
      servcommentList.push(tra)
    }
    console.log(servcommentList)
    // return
    wx.request({
      url: url + 'ServComment/mulitServComment0213.action',
      method: 'POST',
      // header: {
      //   'content-type': 'application/x-www-form-urlencoded'
      // },
      data: {
        USER_ID: wx.getStorageSync('userInfo').USER_ID,
        ORDER_ID: this.data.orderid,
        SERVCOMMENT_LIST: servcommentList
      },
      success: res => {
        console.log(res.data)
        let data = res.data.RESULT_DATA
        if (res.data.STATUS_CODE == 1) {
          wx.showToast({
            title: '评价成功',
          })
          setTimeout(() => {
            wx.switchTab({
              url: '/pages/my/my',
            })
          }, 1500)
        }
      }
    })
  },
  // 图片上传 imgurl：图片在小程序中的预览地址 cb: callback
  imgUpload(imgurl, cb) {
    console.log(imgurl)
    // wx.uploadFile方法单次只能上传一个文件，多图上传需排队
    wx.uploadFile({
      url: url + 'tenpay/wxUploadFileNotify',
      // url: 'http://183.16.190.72:9088/4SCAFE/tenpay/wxUploadFileNotify.action ', // 测试用地址
      filePath: imgurl,
      header: {
        'content-type': 'multipart/form-data'
      },
      name: 'imgFile',
      formData: {},
      success: res => {
        console.log(res.data)
        var data = JSON.parse(res.data)
        // console.log(data)
        if (data.STATUS_CODE == 1) {
          cb(data.FILE_NAME)
        }
      },
      fail: res => {
        cb()
      }
    })
  },
  // 图片选择
  chooseImg (e) {
    let index = e.currentTarget.dataset.index // 操作索引
    if (this.data.useList[index].img.length >= 4) return
    let oldUseList = this.data.useList
    wx.chooseImage({
      count: 4, // 多选张数
      sizeType: ['compressed'], // 使用压缩图
      success: res => {
        // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
        let tempFilePaths = res.tempFilePaths

        oldUseList[index].img = oldUseList[index].img.concat(tempFilePaths)

        if (oldUseList[index].img.length > 4) {
          oldUseList[index].img = oldUseList[index].img.slice(0, 4)
        }
        this.setData({
          useList: oldUseList
        })
      }
    })
  },
  // 移除图片
  removeThis (e) {
    let index = e.currentTarget.dataset.index // 点的第几张
    let index2 = e.currentTarget.dataset.indextwo // 第几个商品
    let oldUseList = this.data.useList
    
    let arr = oldUseList[index2].img
    arr.splice(index, 1)
    this.setData({
      useList: oldUseList
    })
  },
  // 商品标签的选择
  labelTap (e) {
    let labIndex = e.currentTarget.dataset.labindex // 当前标签的索引
    let goodsIndex = e.currentTarget.dataset.goodsindex // 当前商品的索引
    // console.log(labIndex, goodsIndex)
    
    let useList = this.data.useList
    useList[goodsIndex]['lableChoose' + labIndex] = !useList[goodsIndex]['lableChoose' + labIndex]
    let ind = useList[goodsIndex].labIndex.indexOf(labIndex)
    if (ind > -1) {
      // console.warn(123)
      // 已选该标签 去除
      useList[goodsIndex].labIndex.splice(ind, 1);
    } else {
      // 未选该标签 新增
      useList[goodsIndex].labIndex.push(labIndex)
    }
    console.log(useList)
    this.setData({ useList: useList})
  },
  // 获取待评价商品
  getCommentsGoods (orderid) {
    wx.request({
      url: url + 'ServComment/getCommentPro.action',
      method: 'POST',
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      data: {
        ORDER_ID: orderid // 99796
      },
      success: res => {
        console.log(res.data)
        let data = res.data.RESULT_DATA
        // 生成评论数组
        let useList = []
        for (let a = 0; a < data.length; a++) {
          let x = {
            servId: data[a].SERV_ID, // 商品标识id
            servName: data[a].SERV_NAME,
            img: [], // 预览图片
            useImg: [], // 传给后台图
            text: '', // 文字评价
            lable: data[a].COMMENT_LABEL, // 评价标签
            labIndex: [] // 标签选择索引
          }
          // {{ useList[index].labIndex.indexOf(lab) > -1 ? 'lab_active' : '' }} 小程序不能做indexOf运算？
          for (let s = 0; s < data[a].COMMENT_LABEL.length; s++){
            x['lableChoose' + s] = false
          }
          useList.push(x)
        }
        this.setData({ useList: useList })
        console.log(this.data.useList)
      }
    })
  },
  // 图片预览
  previewImg (e) {
    let now = e.currentTarget.dataset.img // 当前图片地址
    let index = e.currentTarget.dataset.indextwo // 第几组索引
    let seeList = this.data.useList[index].img // 需要预览的图片http链接列表
    
    wx.previewImage({
      current: now, // 当前显示图片的http链接
      urls: seeList // 需要预览的图片http链接列表
    })
  },
  textInput (e) {
    let text = e.detail.value, // 当前输入内容
    index = e.currentTarget.dataset.index // 当前是输入的是第几个商品
    let use = this.data.useList
    use[index].text = text
    // this.setData({ useList: use})
  },
  // 生命周期函数--监听页面加载
  onLoad: function (options) {
    let orderid = options.orderid
    let shopname = options.shopname
    this.setData({ 
      orderid: orderid, // 订单号
      shopName: shopname // 店名
    })
    // 获取待评价商品
    this.getCommentsGoods(orderid)
  },
  // 生命周期函数--监听页面初次渲染完成
  onReady: function () {
  },
  // 生命周期函数--监听页面显示
  onShow: function () {
  },
  // 生命周期函数--监听页面隐藏
  onHide: function () {
  },
  // 生命周期函数--监听页面卸载
  onUnload: function () {
  },
  // 页面相关事件处理函数--监听用户下拉动作
  onPullDownRefresh: function () {
  },
  // 页面上拉触底事件的处理函数
  onReachBottom: function () {
  },
  // 用户点击右上角转发
  onShareAppMessage: function () {
  },
  // 页面滚动触发事件的处理函数
  onPageScroll: function () {
  },
  // 当前是 tab 页时，点击 tab 时触发
  onTabItemTap () {
  },
  // 自定义方法
  jumpTo(e) {
    // 方法传参
    let url = e.currentTarget.dataset.jump
    console.log(url)
    wx.navigateTo({
      url: url
    })
  }
})
